/**
* eCommerce Application Sample for J2EE Training 
* @author Fabienne Boyer - july 2000
* @author Didier Donsez - november 2002  
*/

package miagetest.client.shell;

import miagetest.client.interfaces.ShellCommand;
import miagetest.client.interfaces.ShellContext;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.Iterator;

// Classe d'actions sur les donnees
class ShellContextImpl implements ShellContext {
	private Map _commands;
	private Map _environnementVariables;

        // On recupere ici les donneees concernant les commandes réalisables
	public ShellContextImpl(Map commands){
		_commands=commands;
		_environnementVariables=new TreeMap();
	}

        //Renvoie la liste des commandes disponibles
	public synchronized ShellCommand[] getCommands() {
		ShellCommand[] cmds=new ShellCommand[_commands.size()];
		Iterator iterator=_commands.values().iterator();
		for(int i=0;iterator.hasNext(); i++) {
			cmds[i]=(ShellCommand)iterator.next();	
		}
		return cmds;
	}

        // Retourne une donnee selon sa cle
	public Object getVar(String key){
		return _environnementVariables.get(key);
	}

        // Retourne une liste de donnees
	public Set getVarNames(){
		return _environnementVariables.keySet();
	}

        // Update d'une valeur selon sa cle
	public void setVar(String key, Object value){
		_environnementVariables.put(key,value);
	}

        // Supprime un element selon sa cle
	public Object unsetVar(String key){
		return _environnementVariables.remove(key);
	}
}

